Java管理扩展(JMX)提供了一种标准的监控和管理应用的机制。默认情况下,Spring Boot在org.springframework.boot
域下将管理端点暴露为JMX MBeans。
MBean的名称通常产生于端点的id,例如,health
端点被暴露为org.springframework.boot/Endpoint/healthEndpoint
。
如果应用包含多个Spring ApplicationContext
,你会发现存在名称冲突。为了解决这个问题,你可以将endpoints.jmx.uniqueNames
设置为true
,这样MBean的名称总是唯一的。
你也可以自定义端点暴露的JMX域,具体可参考以下application.properties
示例:
endpoints.jmx.domain=myapp
endpoints.jmx.uniqueNames=true
### 48.2 禁用JMX端点
如果不想通过JMX暴露端点,你可以将`endpoints.jmx.enabled`属性设置为`false`:
```java
endpoints.jmx.enabled=false
Jolokia是一个JMX-HTTP桥,它提供了一种访问JMX beans的替代方法。想要使用Jolokia,只需添加org.jolokia:jolokia-core
的依赖。例如,使用Maven需要添加以下配置:
<dependency>
<groupId>org.jolokia</groupId>
<artifactId>jolokia-core</artifactId>
</dependency>
然后在你的管理HTTP服务器上可以通过/jolokia
访问Jolokia。
Jolokia有很多配置,通常使用servlet参数进行设置,跟Spring Boot一块使用时可以在application.properties
中添加jolokia.config.
前缀的属性进行配置:
jolokia.config.debug=true
如果正在使用Jolokia,又不想让Spring Boot配置它,你只需要简单的将endpoints.jolokia.enabled
属性设置为false
:
endpoints.jolokia.enabled=false